################################################################################
## @brief
#			email     stanleyguo0207@163.com
#     github    https://github.com/stanleyguo0207
#     gitee     https://gitee.com/stanleyguo0207
#
################################################################################

################################################################################
## @brief
#			cmake最低要求
#
cmake_minimum_required(VERSION 3.12)
#
################################################################################

################################################################################
## @brief
#			禁用源码构建
#
set(CMAKE_DISABLE_SOURCE_CHANGES ON)
set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)
#
################################################################################

################################################################################
## @brief
#			工程名 项目语言c++
#
project(asfinger CXX)
#
################################################################################

################################################################################
## @brief
#			c++标准
#
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
#
################################################################################

################################################################################
## @brief
#			追加系统宏目录
#
list(APPEND CMAKE_MODULE_PATH
  "${CMAKE_SOURCE_DIR}/cmake/macros"
  "${CMAKE_SOURCE_DIR}/third_party/cotire/CMake")
#
################################################################################

################################################################################
## @brief
#			包含cmake系统的宏
#
include(CheckCXXSourceRuns)
include(CheckIncludeFiles)
#
################################################################################

################################################################################
## @brief
#			脚本函数
#
include(FuncConfigureScripts)
include(FuncAutoCollect)
#
################################################################################

################################################################################
## @brief
#			banner
#
include(${CMAKE_SOURCE_DIR}/cmake/banner.cmake)
#
################################################################################

################################################################################
## @brief
#			设置配置选项 所有的选项信息都放在这个文件里面
#
include(${CMAKE_SOURCE_DIR}/cmake/options.cmake)
include(${CMAKE_SOURCE_DIR}/cmake/showoptions.cmake)
#
################################################################################

################################################################################
## @brief
#			基本库的接口定义
#
include(ConfigureBaseTargets)
#
################################################################################

################################################################################
## @brief
#			系统平台检查
#
include(CheckPlatform)
#
################################################################################

################################################################################
## @brief
#			构建目录检查
#
include(CheckBuildDir)
#
################################################################################

################################################################################
## @brief
#			源码树
#
include(FuncGroupSources)
#
################################################################################

################################################################################
## @brief
#			查找pch
#
find_package(PCHSupport)
#
################################################################################

################################################################################
## @brief
#			查找mysql
#
set(MYSQL_ROOT "D:/Program Files/mysql-5.7")
find_package(MySQL)
#
################################################################################

################################################################################
## @brief
#			查找git
#
if(NOT WITHOUT_GIT)
  find_package(Git)
endif()
#
################################################################################

################################################################################
## @brief
#			版本信息生成
#
include(cmake/genrev.cmake)
#
################################################################################

################################################################################
## @brief
#			测试开关
#     因为第三库中有测试的地方，所以先打开测试开关
#
if(BUILD_TESTS)
  enable_testing()
endif()
#
################################################################################

################################################################################
## @brief
#			第三方库
#
add_subdirectory(third_party)
#
################################################################################

################################################################################
## @brief
#			核心模块
add_subdirectory(afcore)
#
################################################################################

################################################################################
## @brief
#			工具模块
# add_subdirectory(tools)
#
################################################################################

################################################################################
## @brief
#			测试模块
if(BUILD_TESTS)
  add_subdirectory(tests)
endif()
#
################################################################################